﻿import com.dinmax.labonline.*

class ScrollFoto{
	private var _pasos:Array;
	private var _borrar:Foto;
	private var _contenedor:MovieClip;
	private var _fotoEnUso:MovieClip;
	private var _mask:MovieClip;
	private var _menosFotos:MovieClip;
	private var _masFotos:MovieClip;
	private var _parente:MovieClip;
	private var _pixels:Number;
		
	function ScrollFoto(parent:MovieClip){
		_contenedor=parent.createEmptyMovieClip("mcFotos", parent.getNextHighestDepth());
		_menosFotos=parent.attachMovie("MenosFotos", "mcMenosFotos", parent.getNextHighestDepth());
		_masFotos=parent.attachMovie("MasFotos", "mcMasFotos", parent.getNextHighestDepth());
		_menosFotos._x= 645.9;
		_menosFotos._y= 470;
		_masFotos._x= 668;
		_masFotos._y= 470;
		var rMaskFotos:Rectangulo=new Rectangulo(parent, 6, 75, 676,408,0,0);
		_mask=rMaskFotos.getClip();
		_contenedor.setMask(_mask);
		_parente=parent;
		_pasos=new Array();
	}
	
	public function refreshFotos(){
		borrarFotos();
		crearFotos();
		initScroll();
		initBotones();
	}
	
	public function getContenedor():MovieClip{
		return _contenedor;
	}
	public function getFotoEnUso():MovieClip{
		return _fotoEnUso;
	}
	public function resetFotoEnUso(){
		//_fotoEnUso._alpha=100;
		//_fotoEnUso.enabled=true;
		_fotoEnUso=undefined;
	}
	
	public function getBorrar():Foto{
		return _borrar;
	}
	
	private function borrarFotos(){
		for(var sFotos:String in _contenedor){
			_contenedor[sFotos].jpg.unloadMovie();
			_contenedor[sFotos].jpg.removeMovieClip();
			_contenedor[sFotos].removeMovieClip();
		}
	}
	
	private function crearFotos(){
		var fotos:Array=Application.getAlbum().getFotos();
		var nFotitoX:Number=6;
		var nFotitoY:Number=382;
		for(var i:Number=0; i<fotos.length;i++){
		var fotito:MovieClip=_contenedor.attachMovie("Polaroid", "polaroid"+i, _contenedor.getNextHighestDepth());
		fotito.mcFotito.createEmptyMovieClip("contenedor", fotito.mcFotito.getNextHighestDepth());
		fotito.mcFotito.contenedor.createEmptyMovieClip("jpg", fotito.mcFotito.getNextHighestDepth());
		fotito.mcFotito.contenedor.jpg.loadMovie(fotos[i].getSmallFoto());

		fotito.foto=fotos[i];
		fotito._x=nFotitoX;
		fotito._y=nFotitoY;
		fotito.resetx=nFotitoX;
		fotito.resety=nFotitoY;
		nFotitoX+=(fotito._width + 10);
		fotito.titulo_txt.text= fotos[i].getNombre();
		fotito.useHandCursor=false;
		fotito.root=this;
		
		var cnt:Number=0;
		var stopit:Number=0;
		
		fotito.onPress=function(){
			Mouse.hide();
			this.attachMovie("Chinche", "mcChinche", this.getNextHighestDepth());
			this.mcChinche._x-=5;
			this.mcChinche._y-=5;
			this.startDrag(true);
			this.onEnterFrame = function(){
				cnt++;
				stopit-=0.05
				this._rotation = (Math.sin(cnt/2)*-5)/(stopit);
			}
		}
		fotito.onRelease=function(){
			this.stopDrag();
			this._rotation=0;
			this.mcChinche._visible=false;
			Mouse.show();
			delete this.onEnterFrame;
			delete cnt;
			delete stopit;
			if(this._x !=this.resetx || this._y != this.resety){
				this.onEnterFrame =function(){
					if(this._x != this.resetx || this._y != this.resety){
						var nXresta:Number=this._x - this.resetx;
						var nYresta:Number=this._y - this.resety;
						var bEnterFrameX:Boolean= nXresta < 0.2 && nXresta > 0 || nXresta==0;
						var bEnterFrameY:Boolean= nYresta < 0.2 && nYresta > 0 || nYresta==0;
						var bEnterFrameX2:Boolean= nXresta > -0.3 && nXresta < 0 || nXresta==0;
						var bEnterFrameY2:Boolean= nYresta > -0.3 && nYresta < 0 || nYresta==0;
						if(bEnterFrameX && bEnterFrameY || bEnterFrameX && bEnterFrameY2 || bEnterFrameX2 && 						
							bEnterFrameY || bEnterFrameX2 && bEnterFrameY2){
							delete this.onEnterFrame;
						}
						this._x-=(this._x - this.resetx)/2;
						this._y-=(this._y - this.resety)/4;
					}
				}
			}
			for(var j:Number=0;j<Application.getMenuBiblioteca().getClips().length;j++){
				if (Application.getMenuBiblioteca().getClips()[j].hitTest(_xmouse, _ymouse)){
					LabManager.EventoFoto=function(_foto:Foto, _error:String){
						if(_error==undefined){
						Application.finCargador();
						Application.getMenuBiblioteca().borrarBibliotecas();
						Application.getMenuBiblioteca().refreshBibliotecas();
						Application.selectAlbum(Application.getMenuBiblioteca().getClips()[j].album);
						Application.loadContent(_foto.getLargeFoto(), true);
						} else {
							trace("ERROR moveFoto: "+_error);
						}
					}
					Application.cargador();
					LabManager.moveFoto(this.foto, Application.getMenuBiblioteca().getClips()[j].album);
					
				}
			}
			if (this.mcChinche.hitTest(Application.getTacho()._x+15, Application.getTacho()._y+5, false)){
				this.root._borrar=this.foto;
				Application.loadContent("alertFoto.swf");
			}else if (this.mcChinche.hitTest(Application.getCarrito()._x+15, Application.getCarrito()._y+5, false)){
				Carrito.addFoto(this.foto);
				if(Application.getPantalla()._swf=="carrito.swf"){
					Application.getCarrito().onPress();
				}
				Application.getCarrito().txt_carrito.text=Carrito.getFotos().length;
			}else if(this.mcChinche.hitTest(Application.getPantalla())){ // HIT TEST -> CARGA LA FOTO GRANDE
				if(LabManager.getEfectos()[1]!=undefined){
					Application.loadContent("guardarCambios.swf");
				}else{
				//this._alpha=50;
				//this.enabled=false;
				//this.root._fotoEnUso._alpha=100;
				//this.root._fotoEnUso.enabled=true;
				this.root._fotoEnUso=this;
				Application.loadContent(this.foto.getLargeFoto(), true);
				Application.refreshFotoEfecto();
				Application.unloadInfo();
				Application.loadInfo(this.foto);
				}
			}
			
			this.mcChinche.removeMovieClip();
		}
		fotito.onReleaseOutside=function(){
			this.onRelease();
			}
			
		}
	}
	
	private function initScroll(){
		_contenedor._x=0;
		if(_contenedor._width < 650){
			_menosFotos.enabled=false;
			_menosFotos._alpha=20;
			_masFotos.enabled=false;
			_masFotos._alpha=20;
		} else {
		chequearBotones();
		}
	}
	
	private function chequearBotones(){
		var numero:Number= _contenedor._x + _contenedor._width - _mask._width;
		if (_contenedor._x < 0) {
			if(numero < 1){
			_masFotos.enabled=false;
			_masFotos._alpha=20;
			} else {
			_masFotos.enabled=true;
			_masFotos._alpha=100;
			}
			_menosFotos.enabled=true;
			_menosFotos._alpha=100;
		} else {
			_masFotos.enabled=true;
			_masFotos._alpha=100;
		}
		
		if (_contenedor._x > -1){
			_menosFotos.enabled=false;
			_menosFotos._alpha=20;
		}
				
	}
	
	private function initBotones(){
		_masFotos.root=this;
		_masFotos.onPress=function(){
				var numero:Number=this.root._contenedor._x + this.root._contenedor._width - this.root._mask._width;
				if(numero < 614 && numero > 1){
				this.root._pixels=numero;
				this.root._pasos.push(this.root._pixels);
				this.root.scrollFotos(-1);
				} else if (numero < 1){
					
				} else {
				this.root._pixels=614;
				this.root._pasos.push(this.root._pixels);
				this.root.scrollFotos(-1);
				}
		}

		_menosFotos.root=this;
		_menosFotos.onPress=function(){
			if(this.root._contenedor._x < 0){
				this.root._pixels=this.root._pasos[this.root._pasos.length-1];
				this.root._pasos.pop();
				this.root.scrollFotos(1);
			}
		}
	}
		
	private function scrollFotos(nDireccion:Number){
				
		_masFotos.enabled=false;
		_masFotos._alpha=20;
		_menosFotos.enabled=false;
		_menosFotos._alpha=20;
		
		var nPixels:Number = _pixels * nDireccion;
		var nDistancia:Number=_contenedor._x + nPixels;

		_contenedor.parente=this._parente;
		_contenedor.root=this;
		
		_contenedor.onEnterFrame=function(){
			
			var chequeo:Boolean= (nDistancia-this._x)*nDireccion < .8;
			if(chequeo){
				this.root.chequearBotones();
				delete this.onEnterFrame;
			} else {
				this._x+=(nDistancia-this._x)/3;
			}
		}
		
	}
			
} //FIN